/*
 * Provides a ship state for X-Wing Miniatures.
 */
function ShipState(pilotSkillValueIn, primaryWeaponValueIn, agilityValueIn,
        hullValueIn, shieldValueIn)
{
    var agilityValue = agilityValueIn;
    var hullValue = hullValueIn;
    var pilotSkillValue = pilotSkillValueIn;
    var primaryWeaponValue = primaryWeaponValueIn;
    var shieldValue = shieldValueIn;

    this.getAgilityValue = function()
    {
        return agilityValue;
    }

    this.getHullValue = function()
    {
        return hullValue;
    }

    this.getPilotSkillValue = function()
    {
        return pilotSkillValue;
    }

    this.getPrimaryWeaponValue = function()
    {
        return primaryWeaponValue;
    }

    this.getShieldValue = function()
    {
        return shieldValue;
    }
};

ShipState.ZERO = new ShipState(0, 0, 0, 0, 0);

/*
 * Provides an enumeration of pilots for X-Wing Miniatures.
 */
var Pilot =
{
    ACADEMY_PILOT: "academyPilot",
    AIREN_CRACKEN: "airenCracken",
    ALPHA_SQUADRON_PILOT: "alphaSquadronPilot",
    ARVEL_CRYNYD: "arvelCrynyd",
    AVENGER_SQUADRON_PILOT: "avengerSquadronPilot",
    BACKSTABBER: "backstabber",
    BANDIT_SQUADRON_PILOT: "banditSquadronPilot",
    BIGGS_DARKLIGHTER: "biggsDarklighter",
    BLACK_SQUADRON_PILOT: "blackSquadronPilot",
    BLACKMOON_SQUADRON_PILOT: "blackmoonSquadronPilot",
    BLUE_SQUADRON_PILOT: "blueSquadronPilot",
    BOBA_FETT: "bobaFett",
    BOUNTY_HUNTER: "bountyHunter",
    CAPTAIN_JONUS: "captainJonus",
    CAPTAIN_KAGI: "captainKagi",
    CAPTAIN_YORR: "captainYorr",
    CARNOR_JAX: "carnorJax",
    CHEWBACCA: "chewbacca",
    COLONEL_JENDON: "colonelJendon",
    COLONEL_VESSERY: "colonelVessery",
    CORRAN_HORN: "corranHorn",
    DAGGER_SQUADRON_PILOT: "daggerSquadronPilot",
    DARK_CURSE: "darkCurse",
    DARTH_VADER: "darthVader",
    DELTA_SQUADRON_PILOT: "deltaSquadronPilot",
    DUTCH_VANDER: "dutchVander",
    ECHO: "echo",
    ETAHN_ABAHT: "etahnAbaht",
    FELS_WRATH: "felsWrath",
    GAMMA_SQUADRON_PILOT: "gammaSquadronPilot",
    GARVEN_DREIS: "garvenDreis",
    GOLD_SQUADRON_PILOT: "goldSquadronPilot",
    GRAY_SQUADRON_PILOT: "graySquadronPilot",
    GREEN_SQUADRON_PILOT: "greenSquadronPilot",
    HAN_SOLO: "hanSolo",
    HOBBIE_KLIVIAN: "hobbieKlivian",
    HORTON_SALM: "hortonSalm",
    HOWLRUNNER: "howlrunner",
    IBTISAM: "ibtisam",
    JAN_ORS: "janOrs",
    JEK_PORKINS: "jekPorkins",
    KATH_SCARLET: "kathScarlet",
    KIR_KANOS: "kirKanos",
    KNAVE_SQUADRON_PILOT: "knaveSquadronPilot",
    KRASSIS_TRELIX: "krassisTrelix",
    KYLE_KATARN: "kyleKatarn",
    LANDO_CALRISSIAN: "landoCalrissian",
    LIEUTENANT_BLOUNT: "lieutenantBlount",
    LIEUTENANT_LORRIR: "lieutenantLorrir",
    LUKE_SKYWALKER: "lukeSkywalker",
    MAAREK_STELE: "maarekStele",
    MAJOR_RHYMER: "majorRhymer",
    MAULER_MITHEL: "maulerMithel",
    NIGHT_BEAST: "nightBeast",
    OBSIDIAN_SQUADRON_PILOT: "obsidianSquadronPilot",
    OMICRON_GROUP_PILOT: "omicronGroupPilot",
    ONYX_SQUADRON_PILOT: "onyxSquadronPilot",
    OUTER_RIM_SMUGGLER: "outerRimSmuggler",
    PROTOTYPE_PILOT: "prototypePilot",
    REBEL_OPERATIVE: "rebelOperative",
    RED_SQUADRON_PILOT: "redSquadronPilot",
    REXLER_BRATH: "rexlerBrath",
    ROARK_GARNET: "roarkGarnet",
    ROOKIE_PILOT: "rookiePilot",
    ROYAL_GUARD_PILOT: "royalGuardPilot",
    SABER_SQUADRON_PILOT: "saberSquadronPilot",
    SABER_SQUADRON_PILOT: "saberSquadronPilot",
    SCIMITAR_SQUADRON_PILOT: "scimitarSquadronPilot",
    SHADOW_SQUADRON_PILOT: "shadowSquadronPilot",
    SIGMA_SQUADRON_PILOT: "sigmaSquadronPilot",
    SOONTIR_FEL: "soontirFel",
    STORM_SQUADRON_PILOT: "stormSquadronPilot",
    TALA_SQUADRON_PILOT: "talaSquadronPilot",
    TARN_MISON: "tarnMison",
    TEMPEST_SQUADRON_PILOT: "tempestSquadronPilot",
    TEN_NUMB: "tenNumb",
    TETRAN_COWALL: "tetranCowall",
    TURR_PHENNIR: "turrPhennir",
    TYCHO_CELCHU: "tychoCelchu",
    WEDGE_ANTILLES: "wedgeAntilles",
    WES_JANSON: "wesJanson",
    WHISPER: "whisper",
    WINGED_GUNDARK: "wingedGundark",
    properties:
    {
        "academyPilot":
        {
            name: "Academy Pilot",
            description: "A TIE Fighter pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_FIGHTER,
            shipState: new ShipState(1, 2, 3, 3, 0),
            squadPointCost: 12,
            value: "academyPilot",
        },
        "airenCracken":
        {
            name: "Airen Cracken",
            description: "A Z-95 Headhunter pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.Z_95_HEADHUNTER,
            shipState: new ShipState(8, 2, 2, 2, 2),
            squadPointCost: 19,
            value: "airenCracken",
        },
        "alphaSquadronPilot":
        {
            name: "Alpha Squadron Pilot",
            description: "A TIE Interceptor pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_INTERCEPTOR,
            shipState: new ShipState(1, 3, 3, 3, 0),
            squadPointCost: 18,
            value: "alphaSquadronPilot",
        },
        "arvelCrynyd":
        {
            name: "Arvel Crynyd",
            description: "An A-Wing pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.A_WING,
            shipState: new ShipState(6, 2, 3, 2, 2),
            squadPointCost: 23,
            value: "arvelCrynyd",
        },
        "avengerSquadronPilot":
        {
            name: "Avenger Squadron Pilot",
            description: "A TIE Interceptor pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_INTERCEPTOR,
            shipState: new ShipState(3, 3, 3, 3, 0),
            squadPointCost: 20,
            value: "avengerSquadronPilot",
        },
        "backstabber":
        {
            name: "\"Backstabber\"",
            description: "A TIE Fighter pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_FIGHTER,
            shipState: new ShipState(6, 2, 3, 3, 0),
            squadPointCost: 16,
            value: "backstabber",
        },
        "banditSquadronPilot":
        {
            name: "Bandit Squadron Pilot",
            description: "A Z-95 Headhunter pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.Z_95_HEADHUNTER,
            shipState: new ShipState(2, 2, 2, 2, 2),
            squadPointCost: 12,
            value: "banditSquadronPilot",
        },
        "biggsDarklighter":
        {
            name: "Biggs Darklighter",
            description: "An X-Wing pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.X_WING,
            shipState: new ShipState(5, 3, 2, 3, 2),
            squadPointCost: 25,
            value: "biggsDarklighter",
        },
        "blackSquadronPilot":
        {
            name: "Black Squadron Pilot",
            description: "A TIE Fighter pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_FIGHTER,
            shipState: new ShipState(4, 2, 3, 3, 0),
            squadPointCost: 14,
            value: "blackSquadronPilot",
        },
        "blackmoonSquadronPilot":
        {
            name: "Blackmoon Squadron Pilot",
            description: "An E-Wing pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.E_WING,
            shipState: new ShipState(3, 3, 3, 2, 3),
            squadPointCost: 29,
            value: "blackmoonSquadronPilot",
        },
        "blueSquadronPilot":
        {
            name: "Blue Squadron Pilot",
            description: "A B-Wing pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.B_WING,
            shipState: new ShipState(2, 3, 1, 3, 5),
            squadPointCost: 22,
            value: "blueSquadronPilot",
        },
        "bobaFett":
        {
            name: "Boba Fett",
            description: "A Firespray-31 pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.FIRESPRAY_31,
            shipState: new ShipState(8, 3, 2, 6, 4),
            squadPointCost: 39,
            value: "bobaFett",
        },
        "bountyHunter":
        {
            name: "Bounty Hunter",
            description: "A Firespray-31 pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.FIRESPRAY_31,
            shipState: new ShipState(3, 3, 2, 6, 4),
            squadPointCost: 33,
            value: "bountyHunter",
        },
        "captainJonus":
        {
            name: "Captain Jonus",
            description: "A TIE Bomber pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_BOMBER,
            shipState: new ShipState(6, 2, 2, 6, 0),
            squadPointCost: 22,
            value: "captainJonus",
        },
        "captainKagi":
        {
            name: "Captain Kagi",
            description: "A Lambda-class shuttle pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.LAMBDA_CLASS_SHUTTLE,
            shipState: new ShipState(8, 3, 1, 5, 5),
            squadPointCost: 27,
            value: "captainKagi",
        },
        "captainYorr":
        {
            name: "Captain Yorr",
            description: "A Lambda-class shuttle pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.LAMBDA_CLASS_SHUTTLE,
            shipState: new ShipState(4, 3, 1, 5, 5),
            squadPointCost: 24,
            value: "captainYorr",
        },
        "carnorJax":
        {
            name: "Carnor Jax",
            description: "A TIE Interceptor pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.ROYAL_GUARD_TIE,
            shipState: new ShipState(8, 3, 3, 3, 0),
            squadPointCost: 26,
            value: "carnorJax",
        },
        "chewbacca":
        {
            name: "Chewbacca",
            description: "A YT-1300 pilot.",
            isUnique: true,
            primaryWeapon: new TurretWeapon("Primary Weapon", true, 3, [
                    Range.ONE, Range.TWO, Range.THREE ]),
            ship: Ship.YT_1300,
            shipState: new ShipState(5, 3, 1, 8, 5),
            squadPointCost: 42,
            value: "chewbacca",
        },
        "colonelJendon":
        {
            name: "Colonel Jendon",
            description: "A Lambda-class shuttle pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.LAMBDA_CLASS_SHUTTLE,
            shipState: new ShipState(6, 3, 1, 5, 5),
            squadPointCost: 26,
            value: "colonelJendon",
        },
        "colonelVessery":
        {
            name: "Colonel Vessery",
            description: "A TIE Defender pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_DEFENDER,
            shipState: new ShipState(6, 3, 3, 3, 3),
            squadPointCost: 35,
            value: "colonelVessery",
        },
        "corranHorn":
        {
            name: "Corran Horn",
            description: "An E-Wing pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.E_WING,
            shipState: new ShipState(8, 3, 3, 2, 3),
            squadPointCost: 35,
            value: "corranHorn",
        },
        "daggerSquadronPilot":
        {
            name: "Dagger Squadron Pilot",
            description: "A B-Wing pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.B_WING,
            shipState: new ShipState(4, 3, 1, 3, 5),
            squadPointCost: 24,
            value: "daggerSquadronPilot",
        },
        "darkCurse":
        {
            name: "\"Dark Curse\"",
            description: "A TIE Fighter pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_FIGHTER,
            shipState: new ShipState(6, 2, 3, 3, 0),
            squadPointCost: 16,
            value: "darkCurse",
        },
        "darthVader":
        {
            name: "Darth Vader",
            description: "A TIE Advanced pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_ADVANCED,
            shipState: new ShipState(9, 2, 3, 3, 2),
            squadPointCost: 29,
            value: "darthVader",
        },
        "deltaSquadronPilot":
        {
            name: "Delta Squadron Pilot",
            description: "A TIE Defender pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_DEFENDER,
            shipState: new ShipState(1, 3, 3, 3, 3),
            squadPointCost: 30,
            value: "deltaSquadronPilot",
        },
        "dutchVander":
        {
            name: "\"Dutch\" Vander",
            description: "A Y-Wing pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.Y_WING,
            shipState: new ShipState(6, 2, 1, 5, 3),
            squadPointCost: 23,
            value: "dutchVander",
        },
        "echo":
        {
            name: "\"Echo\"",
            description: "A TIE Phantom pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 4, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_PHANTOM,
            shipState: new ShipState(6, 4, 2, 2, 2),
            squadPointCost: 30,
            value: "echo",
        },
        "etahnAbaht":
        {
            name: "Etahn A'baht",
            description: "An E-Wing pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.E_WING,
            shipState: new ShipState(5, 3, 3, 2, 3),
            squadPointCost: 32,
            value: "etahnAbaht",
        },
        "felsWrath":
        {
            name: "\"Fel's Wrath\"",
            description: "A TIE Interceptor pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_INTERCEPTOR,
            shipState: new ShipState(5, 3, 3, 3, 0),
            squadPointCost: 23,
            value: "felsWrath",
        },
        "gammaSquadronPilot":
        {
            name: "Gamma Squadron Pilot",
            description: "A TIE Bomber pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_BOMBER,
            shipState: new ShipState(4, 2, 2, 6, 0),
            squadPointCost: 18,
            value: "gammaSquadronPilot",
        },
        "garvenDreis":
        {
            name: "Garven Dreis",
            description: "An X-Wing pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.X_WING,
            shipState: new ShipState(6, 3, 2, 3, 2),
            squadPointCost: 26,
            value: "garvenDreis",
        },
        "goldSquadronPilot":
        {
            name: "Gold Squadron Pilot",
            description: "A Y-Wing pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.Y_WING,
            shipState: new ShipState(2, 2, 1, 5, 3),
            squadPointCost: 18,
            value: "goldSquadronPilot",
        },
        "graySquadronPilot":
        {
            name: "Gray Squadron Pilot",
            description: "A Y-Wing pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.Y_WING,
            shipState: new ShipState(4, 2, 1, 5, 3),
            squadPointCost: 20,
            value: "graySquadronPilot",
        },
        "greenSquadronPilot":
        {
            name: "Green Squadron Pilot",
            description: "An A-Wing pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.A_WING,
            shipState: new ShipState(3, 2, 3, 2, 2),
            squadPointCost: 19,
            value: "greenSquadronPilot",
        },
        "hanSolo":
        {
            name: "Han Solo",
            description: "A YT-1300 pilot.",
            isUnique: true,
            primaryWeapon: new TurretWeapon("Primary Weapon", true, 3, [
                    Range.ONE, Range.TWO, Range.THREE ]),
            ship: Ship.YT_1300,
            shipState: new ShipState(9, 3, 1, 8, 5),
            squadPointCost: 46,
            value: "hanSolo",
        },
        "hobbieKlivian":
        {
            name: "\"Hobbie\" Klivian",
            description: "An X-Wing pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.X_WING,
            shipState: new ShipState(5, 3, 2, 3, 2),
            squadPointCost: 25,
            value: "hobbieKlivian",
        },
        "hortonSalm":
        {
            name: "Horton Salm",
            description: "A Y-Wing pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.Y_WING,
            shipState: new ShipState(8, 2, 1, 5, 3),
            squadPointCost: 25,
            value: "hortonSalm",
        },
        "howlrunner":
        {
            name: "\"Howlrunner\"",
            description: "A TIE Fighter pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_FIGHTER,
            shipState: new ShipState(8, 2, 3, 3, 0),
            squadPointCost: 18,
            value: "howlrunner",
        },
        "ibtisam":
        {
            name: "Ibtisam",
            description: "A B-Wing pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.B_WING,
            shipState: new ShipState(6, 3, 1, 3, 5),
            squadPointCost: 28,
            value: "ibtisam",
        },
        "janOrs":
        {
            name: "Jan Ors",
            description: "An HWK-290 pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 1, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.HWK_290,
            shipState: new ShipState(8, 1, 2, 4, 1),
            squadPointCost: 25,
            value: "janOrs",
        },
        "jekPorkins":
        {
            name: "Jek Porkins",
            description: "An X-Wing pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.X_WING,
            shipState: new ShipState(7, 3, 2, 3, 2),
            squadPointCost: 26,
            value: "jekPorkins",
        },
        "kathScarlet":
        {
            name: "Kath Scarlet",
            description: "A Firespray-31 pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.FIRESPRAY_31,
            shipState: new ShipState(7, 3, 2, 6, 4),
            squadPointCost: 38,
            value: "kathScarlet",
        },
        "kirKanos":
        {
            name: "Kir Kanos",
            description: "A TIE Interceptor pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.ROYAL_GUARD_TIE,
            shipState: new ShipState(6, 3, 3, 3, 0),
            squadPointCost: 24,
            value: "kirKanos",
        },
        "knaveSquadronPilot":
        {
            name: "Knave Squadron Pilot",
            description: "An E-Wing pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.E_WING,
            shipState: new ShipState(1, 3, 3, 2, 3),
            squadPointCost: 27,
            value: "knaveSquadronPilot",
        },
        "krassisTrelix":
        {
            name: "Krassis Trelix",
            description: "A Firespray-31 pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.FIRESPRAY_31,
            shipState: new ShipState(5, 3, 2, 6, 4),
            squadPointCost: 36,
            value: "krassisTrelix",
        },
        "kyleKatarn":
        {
            name: "Kyle Katarn",
            description: "An HWK-290 pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 1, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.HWK_290,
            shipState: new ShipState(6, 1, 2, 4, 1),
            squadPointCost: 21,
            value: "kyleKatarn",
        },
        "landoCalrissian":
        {
            name: "Lando Calrissian",
            description: "A YT-1300 pilot.",
            isUnique: true,
            primaryWeapon: new TurretWeapon("Primary Weapon", true, 3, [
                    Range.ONE, Range.TWO, Range.THREE ]),
            ship: Ship.YT_1300,
            shipState: new ShipState(7, 3, 1, 8, 5),
            squadPointCost: 44,
            value: "landoCalrissian",
        },
        "lieutenantBlount":
        {
            name: "Lieutenant Blount",
            description: "A Z-95 Headhunter pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.Z_95_HEADHUNTER,
            shipState: new ShipState(6, 2, 2, 2, 2),
            squadPointCost: 17,
            value: "lieutenantBlount",
        },
        "lieutenantLorrir":
        {
            name: "Lieutenant Lorrir",
            description: "A TIE Interceptor pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.SABER_SQUADRON_TIE,
            shipState: new ShipState(5, 3, 3, 3, 0),
            squadPointCost: 23,
            value: "lieutenantLorrir",
        },
        "lukeSkywalker":
        {
            name: "Luke Skywalker",
            description: "An X-Wing pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.X_WING,
            shipState: new ShipState(8, 3, 2, 3, 2),
            squadPointCost: 28,
            value: "lukeSkywalker",
        },
        "maarekStele":
        {
            name: "Maarek Stele",
            description: "A TIE Advanced pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_ADVANCED,
            shipState: new ShipState(7, 2, 3, 3, 2),
            squadPointCost: 27,
            value: "maarekStele",
        },
        "majorRhymer":
        {
            name: "Major Rhymer",
            description: "A TIE Bomber pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_BOMBER,
            shipState: new ShipState(7, 2, 2, 6, 0),
            squadPointCost: 26,
            value: "majorRhymer",
        },
        "maulerMithel":
        {
            name: "\"Mauler Mithel\"",
            description: "A TIE Fighter pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_FIGHTER,
            shipState: new ShipState(7, 2, 3, 3, 0),
            squadPointCost: 17,
            value: "maulerMithel",
        },
        "nightBeast":
        {
            name: "\"Night Beast\"",
            description: "A TIE Fighter pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_FIGHTER,
            shipState: new ShipState(5, 2, 3, 3, 0),
            squadPointCost: 15,
            value: "nightBeast",
        },
        "obsidianSquadronPilot":
        {
            name: "Obsidian Squadron Pilot",
            description: "A TIE Fighter pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_FIGHTER,
            shipState: new ShipState(3, 2, 3, 3, 0),
            squadPointCost: 13,
            value: "obsidianSquadronPilot",
        },
        "omicronGroupPilot":
        {
            name: "Omicron Group Pilot",
            description: "A Lambda-class shuttle pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.LAMBDA_CLASS_SHUTTLE,
            shipState: new ShipState(2, 3, 1, 5, 5),
            squadPointCost: 21,
            value: "omicronGroupPilot",
        },
        "onyxSquadronPilot":
        {
            name: "Onyx Squadron Pilot",
            description: "A TIE Defender pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_DEFENDER,
            shipState: new ShipState(3, 3, 3, 3, 3),
            squadPointCost: 32,
            value: "onyxSquadronPilot",
        },
        "outerRimSmuggler":
        {
            name: "Outer Rim Smuggler",
            description: "A YT-1300 pilot.",
            isUnique: false,
            primaryWeapon: new TurretWeapon("Primary Weapon", true, 2, [
                    Range.ONE, Range.TWO, Range.THREE ]),
            ship: Ship.YT_1300,
            shipState: new ShipState(1, 2, 1, 6, 4),
            squadPointCost: 27,
            value: "outerRimSmuggler",
        },
        "prototypePilot":
        {
            name: "Prototype Pilot",
            description: "An A-Wing pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.A_WING,
            shipState: new ShipState(1, 2, 3, 2, 2),
            squadPointCost: 17,
            value: "prototypePilot",
        },
        "rebelOperative":
        {
            name: "Rebel Operative",
            description: "An HWK-290 pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 1, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.HWK_290,
            shipState: new ShipState(2, 1, 2, 4, 1),
            squadPointCost: 16,
            value: "rebelOperative",
        },
        "redSquadronPilot":
        {
            name: "Red Squadron Pilot",
            description: "An X-Wing pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.X_WING,
            shipState: new ShipState(4, 3, 2, 3, 2),
            squadPointCost: 23,
            value: "redSquadronPilot",
        },
        "rexlerBrath":
        {
            name: "Rexler Brath",
            description: "A TIE Defender pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_DEFENDER,
            shipState: new ShipState(8, 3, 3, 3, 3),
            squadPointCost: 37,
            value: "rexlerBrath",
        },
        "roarkGarnet":
        {
            name: "Roark Garnet",
            description: "An HWK-290 pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 1, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.HWK_290,
            shipState: new ShipState(4, 1, 2, 4, 1),
            squadPointCost: 19,
            value: "roarkGarnet",
        },
        "rookiePilot":
        {
            name: "Rookie Pilot",
            description: "An X-Wing pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.X_WING,
            shipState: new ShipState(2, 3, 2, 3, 2),
            squadPointCost: 21,
            value: "rookiePilot",
        },
        "royalGuardPilot":
        {
            name: "Royal Guard Pilot",
            description: "A TIE Interceptor pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.ROYAL_GUARD_TIE,
            shipState: new ShipState(6, 3, 3, 3, 0),
            squadPointCost: 22,
            value: "royalGuardPilot",
        },
        "saberSquadronPilot":
        {
            name: "Saber Squadron Pilot",
            description: "A TIE Interceptor pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_INTERCEPTOR,
            shipState: new ShipState(4, 3, 3, 3, 0),
            squadPointCost: 21,
            value: "saberSquadronPilot",
        },
        "saberSquadronPilot":
        {
            name: "Saber Squadron Pilot",
            description: "A TIE Interceptor pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.SABER_SQUADRON_TIE,
            shipState: new ShipState(4, 3, 3, 3, 0),
            squadPointCost: 21,
            value: "saberSquadronPilot",
        },
        "scimitarSquadronPilot":
        {
            name: "Scimitar Squadron Pilot",
            description: "A TIE Bomber pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_BOMBER,
            shipState: new ShipState(2, 2, 2, 6, 0),
            squadPointCost: 16,
            value: "scimitarSquadronPilot",
        },
        "shadowSquadronPilot":
        {
            name: "Shadow Squadron Pilot",
            description: "A TIE Phantom pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 4, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_PHANTOM,
            shipState: new ShipState(5, 4, 2, 2, 2),
            squadPointCost: 27,
            value: "shadowSquadronPilot",
        },
        "sigmaSquadronPilot":
        {
            name: "Sigma Squadron Pilot",
            description: "A TIE Phantom pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 4, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_PHANTOM,
            shipState: new ShipState(3, 4, 2, 2, 2),
            squadPointCost: 25,
            value: "sigmaSquadronPilot",
        },
        "soontirFel":
        {
            name: "Soontir Fel",
            description: "A TIE Interceptor pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_INTERCEPTOR,
            shipState: new ShipState(9, 3, 3, 3, 0),
            squadPointCost: 27,
            value: "soontirFel",
        },
        "stormSquadronPilot":
        {
            name: "Storm Squadron Pilot",
            description: "A TIE Advanced pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_ADVANCED,
            shipState: new ShipState(4, 2, 3, 3, 2),
            squadPointCost: 23,
            value: "stormSquadronPilot",
        },
        "talaSquadronPilot":
        {
            name: "Tala Squadron Pilot",
            description: "A Z-95 Headhunter pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.Z_95_HEADHUNTER,
            shipState: new ShipState(4, 2, 2, 2, 2),
            squadPointCost: 13,
            value: "talaSquadronPilot",
        },
        "tarnMison":
        {
            name: "Tarn Mison",
            description: "An X-Wing pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.X_WING,
            shipState: new ShipState(3, 3, 2, 3, 2),
            squadPointCost: 23,
            value: "tarnMison",
        },
        "tempestSquadronPilot":
        {
            name: "Tempest Squadron Pilot",
            description: "A TIE Advanced pilot.",
            isUnique: false,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_ADVANCED,
            shipState: new ShipState(2, 2, 3, 3, 2),
            squadPointCost: 21,
            value: "tempestSquadronPilot",
        },
        "tenNumb":
        {
            name: "Ten Numb",
            description: "A B-Wing pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.B_WING,
            shipState: new ShipState(8, 3, 1, 3, 5),
            squadPointCost: 31,
            value: "tenNumb",
        },
        "tetranCowall":
        {
            name: "Tetran Cowall",
            description: "A TIE Interceptor pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.SABER_SQUADRON_TIE,
            shipState: new ShipState(7, 3, 3, 3, 0),
            squadPointCost: 24,
            value: "tetranCowall",
        },
        "turrPhennir":
        {
            name: "Turr Phennir",
            description: "A TIE Interceptor pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_INTERCEPTOR,
            shipState: new ShipState(7, 3, 3, 3, 0),
            squadPointCost: 25,
            value: "turrPhennir",
        },
        "tychoCelchu":
        {
            name: "Tycho Celchu",
            description: "An A-Wing pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.A_WING,
            shipState: new ShipState(8, 2, 3, 2, 2),
            squadPointCost: 26,
            value: "tychoCelchu",
        },
        "wedgeAntilles":
        {
            name: "Wedge Antilles",
            description: "An X-Wing pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.X_WING,
            shipState: new ShipState(9, 3, 2, 3, 2),
            squadPointCost: 29,
            value: "wedgeAntilles",
        },
        "wesJanson":
        {
            name: "Wes Janson",
            description: "An X-Wing pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 3, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.X_WING,
            shipState: new ShipState(8, 3, 2, 3, 2),
            squadPointCost: 29,
            value: "wesJanson",
        },
        "whisper":
        {
            name: "\"Whisper\"",
            description: "A TIE Phantom pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 4, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_PHANTOM,
            shipState: new ShipState(7, 4, 2, 2, 2),
            squadPointCost: 32,
            value: "whisper",
        },
        "wingedGundark":
        {
            name: "\"Winged Gundark\"",
            description: "A TIE Fighter pilot.",
            isUnique: true,
            primaryWeapon: new Weapon("Primary Weapon", true, 2, [ Range.ONE,
                    Range.TWO, Range.THREE ]),
            ship: Ship.TIE_FIGHTER,
            shipState: new ShipState(5, 2, 3, 3, 0),
            squadPointCost: 15,
            value: "wingedGundark",
        },
    },
};

if (Object.freeze)
{
    Object.freeze(Pilot)
};
